package com.tianji.remark.scheduled;


import com.tianji.remark.service.ILikedRecordService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;

@Slf4j
@Component
@RequiredArgsConstructor
public class LikedTimesCheckTask {

    private final ILikedRecordService likedRecordService;

    private static final List<String> BIZ_TYPES = Arrays.asList("QA", "NOTE");

    private static final int MAX_BIZ_SIZE = 30; // 任务最大处理数

    // @Scheduled(cron = "0/20 * * * * ?") // 每间隔20秒执行一次
    @Scheduled(fixedDelay = 20000) // 间隔20秒执行
    public void checkLikedData() {
        log.info("开始执行点赞数据检查定时任务");
        for (String bizType : BIZ_TYPES) {
            // 业务类型 和 一次处理的最大数量
            likedRecordService.readLikedTimesAndMessage(bizType, MAX_BIZ_SIZE);
        }

    }

    // 每天晚上12点执行一次
    // @Scheduled(cron = "0 0 0 * * ?") // 每天晚上12点执行一次
    public void addLikedRecordToDB() {
        log.info("开始执行点赞数据同步定时任务");

            // 开始执行点赞数据同步定时任务
            // likedRecordService.syncLikedDataFromRedisToDB(bizType, MAX_BIZ_SIZE);

    }
}
